1. Copyright Notice
A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the U.S. Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
2. Field of Invention
Embodiments of the invention relate, in general, to development of a rich user interface (UI) for web applications in a client server environment. More specifically, embodiments of the invention relate to a mechanism for developing rich UI client applications using a graphical user interface framework.
3. Description of the Background Art
The advent of the internet introduced millions of people to the concept of a browser to provide access to a vast array of web servers and vast amounts of information. While accessing the information with the browser is relatively straight forward, the speedy, efficient and convenient delivery of the information to the user is dependent on the delivery technology embedded in it.
Browsers are but one example of a web application based on a document object model that enables a user to display and interact with text, images, and other information at a website on the World Wide Web or a local area network. This document object model functions as the interface for accessing the arbitrary elements of an XML document and follows a stateless communication scheme where a request by a client is followed by a response from the server. Unfortunately, the server, which is typically a J2EE® server, retransmits the entire document even if only a small portion of the document changes. As the internet and other client-server networks have evolved it has become obvious that this form of information transfer is relatively inefficient.
Many client-server applications are based on the Java® programming language because Java can be used to create complete applications that can be readily distributed among servers and clients in a network. It can also be used to build small interactive application applets for use as part of a document. Applets make it possible for the user to interact with the page on a more granular level.
Many of the client side applications written in Java also use Java Swing to handle the user interface (UI) tasks. Swing provides many components and containers that enable sophisticated UIs such as drag-and-drop, undo, and the ability to develop a customer's own “look and feel,” or the ability to choose between several standard looks. Swing components implement the MVC (Model View Controller) architecture so client programs can share centralized information over the internet. MVC, which refers to the model, view, and controller, was originally developed to map the traditional input, processing, output roles into the GUI realm.
This mature technology forms the basis for a vast number of client server applications. However, the fact that Swing applications must run locally severely limits scalability and such applications have achieved only limited success in terms of being deployable in an internet infrastructure notwithstanding the relative ease of programming Swing applications.
Recently, web applications, know as Rich Internet Applications (RIA), have become popular because they provide the features and functionality of traditional desktop applications. RIAs also eliminate the need to click through to another page to see related information. With a rich user interface (rich UIs), it is possible to send only the changed information rather than the entire document. Documents with the rich UI increase bandwidth utilization resulting in less network congestion and faster, more efficient access to relevant information for the user.
Asynchronous JavaScript® and XML or more simply, Ajax, is a bundle of technology for developing and delivering the rich UI over the Internet that has become increasingly popular. Specifically, AJax is a client side technology that enables a UI event to propagate to the server at a more granular level compared to the document data model. However, as a technology, it does not provide ways to bound server implementation to the client side event model nor does it provide a standard way to propagate client events to the server for treatment as does Swing. Further, the difficulty associated with developing a rich UI application environment with AJax has limited the adoption of this technology. Trademarks are the property of their respective owners. J2EE, Java, and JavaScript are registered trademarks of Oracle America, Inc.
Accordingly, developers of web or client-server applications are constrained by the non-scalable Swing technology and the difficult to develop AJAX technology. Thus, the development of the rich UI and inclusion in a web document is not only difficult and time consuming but also expensive because of the need for a lot of hand coding. Further, the lack of a viable migration path from a Swing application to a RIA has limited the ability to deploy existing Swing applications on to the internet or other networks such as an intranet.
What is needed is a mechanism that enables developers to develop scalable client applications with the ease of Java Swing UI applications and run them on a J2EE server while behaving like a RIA. What is further needed is a mechanism that facilitates the migration of existing Swing applications to the RIA model to provide a scalable rich UI. What is still further needed is a mechanism that makes use of AJax to enable Swing applications to be deployable as Internet applications that runs on a J2EE server.